[opswitch] EC2バックアップやリージョン間コピー、バックアップ失敗時の通知を簡単に設定
こんにちは!コンサル部のinomaso(@inomasosan)です。
EC2のバックアップを簡単かつ良い感じに運用したいと思ったことはないでしょうか?
弊社が無料で提供しているopswitchをご利用いただくことで、バックアップ設計時によくでてくる要件に対応することができます。
EC2バックアップ要件
今回は以下の要件を踏まえて設定していきます。
- ファイルシステムの整合性を保証するために、AMI作成時にEC2を再起動する
- EC2が稼働しているリージョンでの大規模障害に備え、別リージョンにAMIをコピーする
- バックアップ失敗時にメール等で運用者に通知する
構成イメージ
今回、opswitchで設定するジョブの構成イメージとなります。
opswitchのジョブに複数のタスクを定義した場合は、タスクは順番に実行されます。
上記のジョブ定義の場合、「EC2バックアップの作成」タスクが成功時にのみ、「EC2バックアップのリージョン間コピー」タスクが実行されます。
また、タスクのいずれかが失敗時に、登録されたメールアドレスにメールを通知します。
やってみた
opswitchを開始
opswitchを使い始めるにあたって、以下の対応が必要となります。
- メールアドレスやAWSアカウントの準備
- opswitchアカウントを作成する
- 組織を作成する
- AWSアカウントを連携する
詳細につきましては以下のブログをご参照願います。
[タスク]EC2バックアップの作成
- opswitchにログイン後、
タスク
-EC2
-EC2バックアップの作成
をクリックします。 +作成
ボタンをクリックして、タスクを作成していきます。ターゲット
はバックアップ対象のEC2に設定するタグを指定する必要があります。AMIのステータスチェック
は失敗時に再実行と通知するようにチェックしてfailedの場合、再実行するをチェック願います。
[タスク]EC2バックアップのリージョン間コピー
- opswitchにログイン後、
タスク
-EC2
-EC2バックアップのリージョン間コピー
をクリックします。 +作成
ボタンをクリックして、タスクを作成していきます。コピー元リージョン
はEC2バックアップの作成
で設定したリージョンを指定願います。コピー先リージョン
はAMIのコピー先リージョンを選択願います。暗号化
はEC2にアタッチしているEBSボリュームを暗号化している場合のみチェック願います。- AWSがデフォルトで用意しているKMSキーを利用している場合はaws/ebsを選択願います。
[ジョブ]作成したタスクの実行順やスケジュールを定義
今回作成した2つのタスク「EC2バックアップの作成」、「EC2バックアップのリージョン間コピー」の実行順やスケジュールを定義していきます。
- opswitchにログイン後、
ジョブ
をクリックします。 +作成
ボタンをクリックして、ジョブを作成していきます。スケジュール
は日次以外にも、週次や月次、または時間単位での実行間隔を指定できます。タスク
は定義した上から順番に実行されます。
メール通知の設定
今回はメール通知ですが、それ以外にもSlackやTeamsへの通知もopswitchは対応しております。
また、メール通知を受け取るためには、「個人設定」と「組織設定」の2つがどちらも通知を受け取る設定にする必要あるため、注意願います。
管理
-通知設定
-メール
をクリックしていきます。個人設定
で失敗のみ通知
を選択します。- メールアドレス毎に
個人設定
でメール通知条件を設定する必要がある点に注意願います。
- メールアドレス毎に
組織設定
で通知したいメールアドレスの通知
で送信するを選択します。
実行ログの確認
実行履歴からログを確認することが可能です。
該当のジョブで実行履歴カウンター
をクリックしてみてください。
確認したい実行履歴のログ
をクリック願います。
以下のような、ジョブの実行履歴のログが表示されます。
[2024-03-31 14:41:07,739] ****************************************************************************************** [2024-03-31 14:41:07,739] ジョブ: ec2-bk-job 53669389-b2aa-42fd-95d1-88592d09fc9d [2024-03-31 14:41:07,739] 組織: 30268ada-6cf5-42c9-bc48-510337cd9f23 [2024-03-31 14:41:07,739] スケジュール: 2024-03-31 14:35:00 [2024-03-31 14:41:07,739] 開始日時: 2024-03-31 14:35:28 [2024-03-31 14:37:41,576]**************************************************************************************** [2024-03-31 14:37:41,576] タスク: ec2-bk-task [2024-03-31 14:37:41,576] タスク種別: EC2バックアップの作成 [2024-03-31 14:37:41,576]------------------------------------------------------------------------------------------- [2024-03-31 14:35:32,191] 819950219004 ap-northeast-1 Create Images 対象のインスタンスが2個あります。 [2024-03-31 14:35:32,191] 819950219004 ap-northeast-1 Create Images [cwagent(i-xxxxxxxxxxxxxxxxx), al2023(i-xxxxxxxxxxxxxxxxx)] [2024-03-31 14:35:32,866] 819950219004 ap-northeast-1 Create Images cwagentのAMIを作成しました。(ami-xxxxxxxxxxxxxxxxx) [2024-03-31 14:35:33,354] 819950219004 ap-northeast-1 Create Images al2023のAMIを作成しました。(ami-xxxxxxxxxxxxxxxxx) [2024-03-31 14:36:35,781] 819950219004 ap-northeast-1 Check image status AMIのステータスを確認しています。 [2024-03-31 14:37:37,489] 819950219004 ap-northeast-1 Check image status ami-xxxxxxxxxxxxxxxxx is available [2024-03-31 14:37:37,489] 819950219004 ap-northeast-1 Check image status ami-xxxxxxxxxxxxxxxxx is available [2024-03-31 14:37:39,820] 819950219004 ap-northeast-1 Delete Old Images 削除対象のAMIが2個あります。 [2024-03-31 14:37:39,820] 819950219004 ap-northeast-1 Delete Old Images [ami-xxxxxxxxxxxxxxxxx, ami-xxxxxxxxxxxxxxxxx] [2024-03-31 14:37:40,077] 819950219004 ap-northeast-1 Delete Old Images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。 [2024-03-31 14:37:40,284] 819950219004 ap-northeast-1 Delete Old Images snap-xxxxxxxxxxxxxxxxxを削除しました。 [2024-03-31 14:37:40,557] 819950219004 ap-northeast-1 Delete Old Images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。 [2024-03-31 14:37:40,730] 819950219004 ap-northeast-1 Delete Old Images snap-xxxxxxxxxxxxxxxxxを削除しました。 [2024-03-31 14:37:41,576]------------------------------------------------------------------------------------------- [2024-03-31 14:37:41,576] ターゲットタグKey: Backup [2024-03-31 14:37:41,576] ターゲットタグValue: true [2024-03-31 14:37:41,576] その他の設定: [ 世代数: 1, EC2インスタンスの再起動: する, 説明: , ターゲットインスタンスからタグをコピーする: はい, 紐づくEBSスナップショットに同じタグをつける: はい, AMIのステータスチェック: チェックしてfailedの場合、再実行する ] [2024-03-31 14:37:41,576] タスク実行結果: 成功 [2024-03-31 14:37:41,576] 開始日時: 2024-03-31 14:35:30,630 [2024-03-31 14:37:41,576] 終了日時: 2024-03-31 14:37:41,518 [2024-03-31 14:37:41,576]------------------------------------------------------------------------------------------- [2024-03-31 14:37:41,576] 作成したEC2バックアップ数: 2 [2024-03-31 14:37:41,576] 削除したEC2バックアップ数: 2 [2024-03-31 14:41:05,254]****************************************************************************************** [2024-03-31 14:41:05,254] タスク: ec2-region-copy-task [2024-03-31 14:41:05,254] タスク種別: EC2バックアップのリージョン間コピー [2024-03-31 14:41:05,254]------------------------------------------------------------------------------------------- [2024-03-31 14:37:48,825] 819950219004 ap-northeast-3 Copy images 対象のAMIが2個あります。 [2024-03-31 14:37:48,825] 819950219004 ap-northeast-3 Copy images [ami-xxxxxxxxxxxxxxxxx, ami-xxxxxxxxxxxxxxxxx] [2024-03-31 14:37:49,176] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIをコピーしました。(ami-xxxxxxxxxxxxxxxxx) [2024-03-31 14:37:49,286] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIにタグを付与しました。([{'Key': 'cm-Task', 'Value': 'ec2-region-copy-task'}, {'Key': 'creation_info', 'Value': '53669389-b2aa-42fd-95d1-88592d09fc9d_2024-03-31_14-35-00_000_ami-xxxxxxxxxxxxxxxxx'}, {'Key': 'Name', 'Value': 'al2023'}, {'Key': 'Backup', 'Value': 'true'}]) [2024-03-31 14:37:49,689] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIをコピーしました。(ami-xxxxxxxxxxxxxxxxx) [2024-03-31 14:37:49,787] 819950219004 ap-northeast-3 Copy images ami-xxxxxxxxxxxxxxxxxのAMIにタグを付与しました。([{'Key': 'cm-Task', 'Value': 'ec2-region-copy-task'}, {'Key': 'creation_info', 'Value': '53669389-b2aa-42fd-95d1-88592d09fc9d_2024-03-31_14-35-00_000_ami-xxxxxxxxxxxxxxxxx'}, {'Key': 'Name', 'Value': 'cwagent'}, {'Key': 'Backup', 'Value': 'true'}]) [2024-03-31 14:38:53,024] 819950219004 ap-northeast-3 Check image status AMIのステータスを確認しています。 [2024-03-31 14:39:56,513] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxxのAMIに紐づくスナップショットにタグをコピーしました。 [2024-03-31 14:39:56,513] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxx is available [2024-03-31 14:39:56,513] 819950219004 ap-northeast-3 Check image status AMIのステータスを確認しています。 [2024-03-31 14:40:59,976] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxxのAMIに紐づくスナップショットにタグをコピーしました。 [2024-03-31 14:40:59,976] 819950219004 ap-northeast-3 Check image status ami-xxxxxxxxxxxxxxxxx is available [2024-03-31 14:41:03,711] 819950219004 ap-northeast-3 Delete old images 削除対象のAMIが2個あります。 [2024-03-31 14:41:03,711] 819950219004 ap-northeast-3 Delete old images [ami-xxxxxxxxxxxxxxxxx, ami-xxxxxxxxxxxxxxxxx] [2024-03-31 14:41:03,898] 819950219004 ap-northeast-3 Delete old images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。 [2024-03-31 14:41:04,037] 819950219004 ap-northeast-3 Delete old images snap-xxxxxxxxxxxxxxxxxを削除しました。 [2024-03-31 14:41:04,221] 819950219004 ap-northeast-3 Delete old images ami-xxxxxxxxxxxxxxxxxの登録を解除しました。 [2024-03-31 14:41:04,359] 819950219004 ap-northeast-3 Delete old images snap-xxxxxxxxxxxxxxxxxを削除しました。 [2024-03-31 14:41:05,254]------------------------------------------------------------------------------------------- [2024-03-31 14:41:05,254] ターゲットタグKey: Backup [2024-03-31 14:41:05,254] ターゲットタグValue: true [2024-03-31 14:41:05,254] その他の設定: [ 暗号化されたEC2バックアップをコピーする: はい, 終了時のステータス: チェックする ] [2024-03-31 14:41:05,254] タスク実行結果: 成功 [2024-03-31 14:41:05,254] 開始日時: 2024-03-31 14:37:45,891 [2024-03-31 14:41:05,254] 終了日時: 2024-03-31 14:41:05,181 [2024-03-31 14:41:05,254]------------------------------------------------------------------------------------------- [2024-03-31 14:41:05,254] コピーしたEC2バックアップ数: 2 [2024-03-31 14:41:05,254] 削除したEC2バックアップ数: 2 [2024-03-31 14:41:07,749] ****************************************************************************************** [2024-03-31 14:41:07,749] ジョブの実行に成功しました。 [2024-03-31 14:41:07,749] 完了日時: 2024-03-31 14:41:07 [2024-03-31 14:41:07,749] ******************************************************************************************
ジョブ失敗時のメール通知
EC2バックアップの作成に失敗した場合は、以下のようなサンプルメールが通知されます。
■件名 [opswitch]ジョブの実行に失敗しました(daily_backup) ■本文 opswitch(オプスウィッチ)をご利用のお客様 以下のジョブの実行に失敗しました。 ジョブ名:daily_backup 完了時間:2024-02-13 12:08:34 ------------------------------------------------------------------------------------------- タスク名: ec2_backup タスク種別: EC2バックアップの作成 ターゲットタグKey: Name ターゲットタグValue: MyInstance タスク実行結果: 失敗 開始日時: 2024-02-13 11:57:45,213 終了日時: 2024-02-13 12:08:31,062 ------------------------------------------------------------------------------------------- AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed AMI ami-xxxxxxxxxxxxxxxxx is failed ------------------------------------------------------------------------------------------- 作成したEC2バックアップ数: 0 削除したEC2バックアップ数: 0 ------------------------------------------------------------------------------------------- -- ※本メールは送信専用メールアドレスから送信されています。返信はできませんのでご了承ください。 opswitchに関するお問い合わせは以下のページをご覧ください。 https://opswitch.zendesk.com/hc/ja/articles/360029522972 Classmethod, Inc.
まとめ
とりいそぎ学習コストや開発コストをかけずEC2のバックアップや通知設定したい場合には、弊社のopswitchがマッチするかと思いますので、採用候補の一つとしてご検討いただけますと幸いです。
この記事が、どなたかのお役に立てば幸いです。それでは!